package model

trait ManejoDeMontos {
	
	def registros():List[Registro]

	def totalDeVentas()=this.registros().foldRight(0f){(r,rs) =>r.ventas + rs}

	def totalDeGanancias()=this.registros().foldRight(0f){(r,rs) =>r.ganancias + rs}

	def cantidadDeRegistrosQueSatisfacen(monto:Float,f:Registro => Float)=this.registros.filter(r=>f(r) > monto).size

	def cantidadDeRegistrosConVentasMayorA(monto:Float)=
		this.cantidadDeRegistrosQueSatisfacen(monto,{_.ventas})

	def cantidadDeRegistrosConGananciasMayorA(monto:Float)=
		this.cantidadDeRegistrosQueSatisfacen(monto,{_.ganancias})

	def cantidadDeRegistrosConTasaDeGananciasMayorA(monto:Float)=
		this.cantidadDeRegistrosQueSatisfacen(monto,{_.tasaDeGanancias})


  
}